/*File Name		: ListOfName.h*/
/*Date			: 30-10-2012 */
/*Maker Name	: Jonathan Ery Pradana / 23512038*/
/*Mendeskripsikan definisi Class ListOfName*/

#ifndef _LIST_OF_NAME_H
#define _LIST_OF_NAME_H

#include "../ElementCal/ElementCal.h"
#include <vector>

class ListOfName : public ElementCal{
	private:
		vector<string> name;	//daftar nama
	
	public:
		/** 4 sekawan **/
		ListOfName();
		/* Constructor: membuat ListOfName default (constructor vector otomatis dipanggil oleh sistem) */
		ListOfName(vector<string> L);
		/* Constructor: membuat ListOfName berdasarkan parameter vector event */
		ListOfName(string);
		/* Constructor: membuat ListOfName berdasarkan string */
		/* Prekondisi: format string sudah valid: "name1,name2,..." */
		ListOfName(const ListOfName&);
		/* Copy constructor */
		ListOfName& operator=(const ListOfName&);
		/* Overloading operator = */
		~ListOfName();
		/* Destructor */
		
		/** Getter & Setter **/
		vector<string> GetListOfName();
		/* Mengembalikan name */
		void setListOfName(vector<string> L);
		/* Mengeset name dengan parameter */
		/* I.S. ListOfName sudah terbentuk */
		/* F.S. name sesuai dengan parameter */
		
		/** Override method **/
		void Print();
		/* I.S. ListOfName terdefinisi */
		/* F.S. Nilai ListOfName ditulis ke layar beserta komponen-komponennya */
		/* Proses : Menulis nilai setiap komponen ListOfName ke layar */
		void Read();
		/* I.S. Sembarang */
		/* F.S. ListOfName terdefinisi dan merupakan ListOfName yang valid */
		/* Proses : Membaca komponen ListOfName dari masukan pengguna */
		string ToString();
		/* Mengembalikan ListOfName dalam format "name1,name2,..." */
		void MakeFromString(string s);
		/* Membentuk ListOfName dari elemen yang bertipe string */
		/* I.S. format string sesuai: "name1,name2,..." */
		/* F.S. ListOfName terdefinisi */
};

#endif
